#ifndef ONEWHEEL_H
#define ONEWHEEL_H

class OneWheel;

#include "abstractsystem.h"
#include "../Motors/continuousmotor.h"
#include "../Sensors/motorstatesensor.h"
#include "../Sensors/positionsensor.h"
#include <QList>
#include <QPointF>

class OneWheel : public AbstractSystem
{
public:
    OneWheel();
    void checkValue(int id);
    void setParameters(QList<double> params);
    void addMotor(int freq, double delay, double tau, double imprecision);
    void addSensor(int freq, double delay, double imprecision);
    void addPositionSensor(int freq, double delay, double imprecision);
    QList<double> getPosition();
    QList<double> getPositionNormee();
    double getMotorStateNormee(int id);

    virtual void setInState(QList<double> state);

private:
    double thetaMax, diameter;
};

#endif // ONEWHEEL_H
